
import Vue from "vue";
import axios from "axios";
import VueAxios from "vue-axios";
// let Base64 = require("js-base64").Base64;

Vue.use(VueAxios, axios);

// 请求时间10s，超时报错
axios.defaults.timeout = 10000;
// 给post请求头添加
axios.defaults.headers.post["Content-Type"] = "application/x-www-form-urlencoded;charset=UTF-8";

// 环境的切换
if (process.env.NODE_ENV == "development") {  // 线下，本地
  axios.defaults.baseURL = "/api";
} else if (process.env.NODE_ENV == "debug") { // 调试
  axios.defaults.baseURL = "";
} else if (process.env.NODE_ENV == "production") {  // 线上
  axios.defaults.baseURL = "https://api.shop.uekea.com/";
}

// 获取一般数据
export function get(url, params) {
  return new Promise((resolve, reject) => {
    axios.get(url, params)
      .then((res) => {
        resolve(res.data);
      })
      .catch((err) => {
        reject(err);
      });
  });
}
// 发送，获取加密数据，登陆等
export function post(url, params) {
  return new Promise((resolve, reject) => {
    axios.post(url, params)
      .then((res) => {
        resolve(res.data);
      })
      .catch((err) => {
        reject(err);
      });
  });
}

// 修改
export function put(url, params) {
  return new Promise((resolve, reject) => {
    axios.put(url, params)
      .then((res) => {
        resolve(res.data);
      })
      .catch((err) => {
        reject(err);
      });
  });
}

// 删除
export function dele(url, params) {
  return new Promise((resolve, reject) => {
    axios.delete(url, params)
      .then((res) => {
        resolve(res.data);
      })
      .catch((err) => {
        reject(err);
      });
  });
}

//请求拦截器
// axios.interceptors.request.use(
//   config => {        
//       // 每次发送请求之前判断Cookie中是否存在token        
//       // 如果存在，则统一在http请求的header都加上token，这样后台根据token判断你的登录情况
//       // 即使本地存在token，也有可能token是过期的，所以在响应拦截器中要对返回状态进行判断 
//       if(Cookie.getCookie("token") != undefined) {
//         const token = Base64.decode(Cookie.getCookie("token"));
//         token && (config.headers.common["Authorization"] = "Bearer " + token);
//       }
//       return config;
//   },    
//   error => {        
//       return Promise.error(error);
//   }
// );